solve_qr Interface

public interface solve_qr

Module Procedures

private subroutine solve_qr_no_pivot_mtx(a, tau, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns. M must be greater than or equal to N.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored. Notice, M must be greater than or equal to N.

real(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

real(kind=real64), intent(inout), dimension(:,:) :: b

On input, the M-by-NRHS right-hand-side matrix. On output, the first N rows are overwritten by the solution matrix.

real(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_qr_no_pivot_mtx_cmplx(a, tau, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns. M must be greater than or equal to N.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored. Notice, M must be greater than or equal to N.

complex(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

complex(kind=real64), intent(inout), dimension(:,:) :: b

On input, the M-by-NRHS right-hand-side matrix. On output, the first N rows are overwritten by the solution matrix.

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_qr_no_pivot_vec(a, tau, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns. M must be greater than or equal to N.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored. Notice, M must be greater than or equal to N.

real(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

real(kind=real64), intent(inout), dimension(:) :: b

On input, the M-element right-hand-side vector. On output, the first N elements are overwritten with the solution vector.

real(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private module subroutine solve_qr_no_pivot_vec_cmplx(a, tau, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns. M must be greater than or equal to N.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored. Notice, M must be greater than or equal to N.

complex(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

complex(kind=real64), intent(inout), dimension(:) :: b

On input, the M-element right-hand-side vector. On output, the first N elements are overwritten with the solution vector.

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_qr_pivot_mtx(a, tau, jpvt, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored.

real(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

integer(kind=int32), intent(in), dimension(:) :: jpvt

An N-element array, as output by qr_factor, used to track the column pivots.

real(kind=real64), intent(inout), dimension(:,:) :: b

On input, the MAX(M, N)-by-NRHS right-hand-side matrix. On output, the first N rows are overwritten by the solution matrix.

real(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_qr_pivot_mtx_cmplx(a, tau, jpvt, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored.

complex(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

integer(kind=int32), intent(in), dimension(:) :: jpvt

An N-element array, as output by qr_factor, used to track the column pivots.

complex(kind=real64), intent(inout), dimension(:,:) :: b

On input, the MAX(M, N)-by-NRHS right-hand-side matrix. On output, the first N rows are overwritten by the solution matrix.

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private module subroutine solve_qr_pivot_vec(a, tau, jpvt, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored.

real(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

integer(kind=int32), intent(in), dimension(:) :: jpvt

An N-element array, as output by qr_factor, used to track the column pivots.

real(kind=real64), intent(inout), dimension(:) :: b

On input, the MAX(M, N)-by-NRHS right-hand-side vector. On output, the first N rows are overwritten by the solution vector.

real(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private module subroutine solve_qr_pivot_vec_cmplx(a, tau, jpvt, b, work, olwork, err)

Solves a system of M QR-factored equations of N unknowns.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N QR factored matrix as returned by qr_factor.
On output, the contents of this matrix are restored.

complex(kind=real64), intent(in), dimension(:) :: tau

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by qr_factor.

integer(kind=int32), intent(in), dimension(:) :: jpvt

An N-element array, as output by qr_factor, used to track the column pivots.

complex(kind=real64), intent(inout), dimension(:) :: b

On input, the MAX(M, N)-by-NRHS right-hand-side vector. On output, the first N rows are overwritten by the solution vector.

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.